select
IMPLET_PODPDR, IMPLET_ATTID, IMPLET_MATSM, IMPLET_FUCOID  ,iMPLET_RFACOID, IMPLET_facoID,IMPLET_VALLETPRE,
DECODE (IMPLET_FUCOID ,'POT',IMPLET_VALLET/valp,IMPLET_VALLET) implet_vallet,
--vala,valr,valp,
IMPLET_VALCON, 
IMPLET_DTFINE, 
0  IMPLET_FLTIPO, 
 null  IMPLET_COS, 
nulL   IMPLET_POTIMP, 
null   IMPLET_POTDIS, 
null   IMPLET_TENALI,
1           IMPlet_prov
from (

select 
FLAG_FATTURAZIONE_INTEGRALE,

--rg.GF_ID,rg.GF_DES,
ATT_IDEXT as IMPLET_PODPDR,
 nulL IMPLET_ATTID,
CONTATORI_MOVIMENTI.MATRICOLA_contatore  IMPLET_MATSM, 
       RF.FUCO_ID IMPLET_FUCOID  ,
       RF.RFACO_ID     IMPLET_RFACOID,
       FF.FACO_ID IMPLET_facoID,

   null  IMPLET_VALLETPRE, 
   CASE WHEN RF.FUCO_ID ='ATT' AND  FF.FACO_ID IN ('F1','FU') THEN CONTATORI_MOVIMENTI.LETTURA ELSE
              CASE WHEN RF.FUCO_ID ='ATT' AND  FF.FACO_ID IN ('F2') THEN LS.LETTURA_C2 ELSE 
                         CASE WHEN RF.FUCO_ID ='ATT' AND  FF.FACO_ID IN ('F3') THEN LS.LETTURA_C3 ELSE 
                                     CASE WHEN RF.FUCO_ID ='REA' AND  FF.FACO_ID IN ('F1','FU') THEN LS.LETTURA_R1 ELSE 
                                                 CASE WHEN RF.FUCO_ID ='REA' AND  FF.FACO_ID IN ('F2') THEN LS.LETTURA_R2 ELSE 
                                                            CASE WHEN RF.FUCO_ID ='REA' AND  FF.FACO_ID IN ('F3') THEN LS.LETTURA_R3 ELSE 
                                                                       CASE WHEN RF.FUCO_ID ='POT' AND  FF.FACO_ID IN ('F1','FU' ) THEN INDICE_MASSIMA_1 ELSE 
                                                                                  CASE WHEN RF.FUCO_ID ='POT' AND  FF.FACO_ID IN ('F1','FU' ) THEN INDICE_MASSIMA_1 ELSE 
                                                                                              CASE WHEN RF.FUCO_ID ='POT' AND  FF.FACO_ID IN ('F2' ) THEN INDICE_MASSIMA_2 ELSE 
                                                                                                          CASE WHEN RF.FUCO_ID ='POT' AND  FF.FACO_ID IN ('F3' ) THEN INDICE_MASSIMA_3 ELSE NULL
   END END END END END END END END END END
IMPLET_VALLET,
null   IMPLET_VALCON, 
  contatori_movimenti.DATA_MOVIMENTO   IMPLET_DTFINE, 
 0  IMPLET_FLTIPO, 
 null  IMPLET_COS, 
nulL   IMPLET_POTIMP, 
null   IMPLET_POTDIS, 
null   IMPLET_TENALI,
1           IMPlet_prov


 
       
from  
     sic4u_ambuet.asm_letture_x_sic_1@UESICPROD vc1,db5.contatori_movimenti@pgu3, db5.contatori_movimenti_LS@pgu3 LS, 
     sic4u_ambuet.v_cuffrf@UESICPROD  rf,
   sic4u_ambuet.V_FUCOFACO@UESICPROD FF,db5.utenze@pgu3 ut
     

 where 

 rf.STA_IDSYS <> 1 and rf.STA_IDSYS <> 3


--and rg.GF_ID='70'
 

AND RF.CUF_ID=vc1.CUF_ID
AND RF.FUCO_ID=FF.FUCO_ID
AND RF.RFACO_ID=FF.RFACO_ID
AND RF.RFACO_ID=3
AND RF.FUCO_ID IN ('ATT','REA','POT')
and  FF.FACO_ID <>'FU'


AND RF.AZ_ID='02'
AND FF.AZ_ID='02'
 AND vc1.CODICE_ALLACCIAMENTO=ut.CODICE_ALLACCIAMENTO
 AND vc1.progressivo_utenza = ut.progressivo_utenza
 and contatori_movimenti.matricola_contatore=ut.matricola_contatore_1
  and contatori_movimenti.codice_modello_contatore=ut.codice_modello_contatore_1
  and contatori_movimenti.CODICE_SERVIZIO ='E'
 and contatori_movimenti.CODICE_GESTIONE ='UNRG'
   and ut.CODICE_SERVIZIO ='E'
 and ut.CODICE_GESTIONE ='UNRG'
--AND RFACO_ID =2
--AND VC.GF_ID IN ('10')
--and FLAG_FATTURAZIONE_INTEGRALE='N'
 and contatori_movimenti.lettura <> 0
--AND    contatori_movimenti.data_movimento = (select  max(xx.data_movimento) from db5.contatori_movimenti@pgu3  xx 
                                                                                         --   where 
                                                                                               
                                                                                          --       XX.CODICE_SERVIZIO='E'
                                                                                           --      AND XX.CODICE_GESTIONE ='UNRG'
                                                                                                   --and xx.FLAG_FATTURAZIONE_INTEGRALE='N'
                                                                                           --          and xx.lettura <> 0
                                                                                             --    AND XX.matricola_contatore=CONTATORI_MOVIMENTI.matricola_contatore
                                                                                             --    AND XX.codice_modello_contatore=CONTATORI_MOVIMENTI.codice_modello_contatore)
  AND CONTATORI_MOVIMENTI.MATRICOLA_CONTATORE=LS.MATRICOLA_CONTATORE(+)
  AND CONTATORI_MOVIMENTI.CODICE_MODELLO_CONTATORE=LS.CODICE_MODELLO_CONTATORE(+)
  AND CONTATORI_MOVIMENTI.PROGRESSIVO_MOVIMENTO =LS.PROGRESSIVO_MOVIMENTO(+)
  AND LS.CODICE_SERVIZIO(+) ='E'  
    and  contatori_movimenti.data_movimento >vc1.data_let

--and (select distinct(max(FLAG_FATTURAZIONE_INTEGRALE)) from db5.contatori_movimenti@pgu3 cm1 where cm1.matricola_contatore=CONTATORI_MOVIMENTI.matricola_contatore
                                                                                                                                                             --                   and      cm1.codice_modello_contatore=CONTATORI_MOVIMENTI.codice_modello_contatore
                                                                                                                                                             --                   and      cm1.data_movimento=CONTATORI_MOVIMENTI.data_movimento
                                                                                                                                                             --                   and       cm1.CODICE_SERVIZIO='E'
                                                                                                                                                             --                    AND      cm1.CODICE_GESTIONE ='UNRG') ='N' 
  union all
  select 
FLAG_FATTURAZIONE_INTEGRALE,
ATT_IDEXT as IMPLET_PODPDR,
 nulL IMPLET_ATTID,
CONTATORI_MOVIMENTI.MATRICOLA_contatore  IMPLET_MATSM, 
       RF.FUCO_ID IMPLET_FUCOID  ,
       RF.RFACO_ID     IMPLET_RFACOID,
       'FU' IMPLET_facoID,

   null  IMPLET_VALLETPRE, 
    CONTATORI_MOVIMENTI.LETTURA IMPLET_VALLET,
null   IMPLET_VALCON, 
  contatori_movimenti.DATA_MOVIMENTO   IMPLET_DTFINE, 
 0  IMPLET_FLTIPO, 
 null  IMPLET_COS, 
nulL   IMPLET_POTIMP, 
null   IMPLET_POTDIS, 
null   IMPLET_TENALI,
1           IMPlet_prov


 
       
from  
     sic4u_ambuet.asm_letture_x_sic_1@UESICPROD vc1,db5.contatori_movimenti@pgu3, db5.contatori_movimenti_LS@pgu3 LS, 
     sic4u_ambuet.v_cuffrf@UESICPROD  rf,
   --sic4u_ambuet.V_FUCOFACO@UESICPROD FF,
   db5.utenze@pgu3 ut
     

 where 

 rf.STA_IDSYS <> 1 and rf.STA_IDSYS <> 3


--and rg.GF_ID='70'
 

AND RF.CUF_ID=vc1.CUF_ID
--AND RF.FUCO_ID=FF.FUCO_ID
--AND RF.RFACO_ID=FF.RFACO_ID
AND RF.RFACO_ID=2
AND RF.FUCO_ID IN ('ATT')
--and  FF.FACO_ID ='FU'


AND RF.AZ_ID='02'
--AND FF.AZ_ID='02'
 AND vc1.CODICE_ALLACCIAMENTO=ut.CODICE_ALLACCIAMENTO
 AND vc1.progressivo_utenza = ut.progressivo_utenza
 and contatori_movimenti.matricola_contatore=ut.matricola_contatore_1
  and contatori_movimenti.codice_modello_contatore=ut.codice_modello_contatore_1
  and contatori_movimenti.CODICE_SERVIZIO ='E'
 and contatori_movimenti.CODICE_GESTIONE ='UNRG'
   and ut.CODICE_SERVIZIO ='E'
 and ut.CODICE_GESTIONE ='UNRG'
--AND RFACO_ID =2
--AND VC.GF_ID IN ('10')
--and FLAG_FATTURAZIONE_INTEGRALE='N'
-------------------------------------------------------------------- and contatori_movimenti.lettura <> 0
--AND    contatori_movimenti.data_movimento = (select  max(xx.data_movimento) from db5.contatori_movimenti@pgu3  xx 
                                                                                    --        where 
                                                                                               
                                                                                         --        XX.CODICE_SERVIZIO='E'
                                                                                           --      AND XX.CODICE_GESTIONE ='UNRG'
                                                                                                   --and xx.FLAG_FATTURAZIONE_INTEGRALE='N'
                                                                                                --     and xx.lettura <> 0
                                                                                                -- AND XX.matricola_contatore=CONTATORI_MOVIMENTI.matricola_contatore
                                                                                                -- AND XX.codice_modello_contatore=CONTATORI_MOVIMENTI.codice_modello_contatore)
  AND CONTATORI_MOVIMENTI.MATRICOLA_CONTATORE=LS.MATRICOLA_CONTATORE(+)
  AND CONTATORI_MOVIMENTI.CODICE_MODELLO_CONTATORE=LS.CODICE_MODELLO_CONTATORE(+)
  AND CONTATORI_MOVIMENTI.PROGRESSIVO_MOVIMENTO =LS.PROGRESSIVO_MOVIMENTO(+)
  AND LS.CODICE_SERVIZIO(+) ='E'  
    and  contatori_movimenti.data_movimento >vc1.data_let

--and (select distinct(max(FLAG_FATTURAZIONE_INTEGRALE)) from db5.contatori_movimenti@pgu3 cm1 where cm1.matricola_contatore=CONTATORI_MOVIMENTI.matricola_contatore
                                                                                                                                                             --                   and      cm1.codice_modello_contatore=CONTATORI_MOVIMENTI.codice_modello_contatore
                                                                                                                                                             --                   and      cm1.data_movimento=CONTATORI_MOVIMENTI.data_movimento
                                                                                                                                                             --                   and       cm1.CODICE_SERVIZIO='E'
                                                                                                                                                             --                    AND      cm1.CODICE_GESTIONE ='UNRG') ='N' 
  union all
  select 
FLAG_FATTURAZIONE_INTEGRALE,
ATT_IDEXT as IMPLET_PODPDR,
 nulL IMPLET_ATTID,
CONTATORI_MOVIMENTI.MATRICOLA_contatore  IMPLET_MATSM, 
       RF.FUCO_ID IMPLET_FUCOID  ,
       RF.RFACO_ID     IMPLET_RFACOID,
       'FU' IMPLET_facoID,

   null  IMPLET_VALLETPRE, 

LS.LETTURA_R1 IMPLET_VALLET,
null   IMPLET_VALCON, 
  contatori_movimenti.DATA_MOVIMENTO   IMPLET_DTFINE, 
 0  IMPLET_FLTIPO, 
 null  IMPLET_COS, 
nulL   IMPLET_POTIMP, 
null   IMPLET_POTDIS, 
null   IMPLET_TENALI,
1           IMPlet_prov


 
       
from  
     sic4u_ambuet.asm_letture_x_sic_1@UESICPROD vc1,db5.contatori_movimenti@pgu3, db5.contatori_movimenti_LS@pgu3 LS, 
     sic4u_ambuet.v_cuffrf@UESICPROD  rf,
   --sic4u_ambuet.V_FUCOFACO@UESICPROD FF,
   db5.utenze@pgu3 ut
     

 where 

 rf.STA_IDSYS <> 1 and rf.STA_IDSYS <> 3


--and rg.GF_ID='70'
 

AND RF.CUF_ID=vc1.CUF_ID
--AND RF.FUCO_ID=FF.FUCO_ID
--AND RF.RFACO_ID=FF.RFACO_ID
AND RF.RFACO_ID=2
AND RF.FUCO_ID IN ('REA')
--and  FF.FACO_ID ='FU'


AND RF.AZ_ID='02'
--AND FF.AZ_ID='02'
 AND vc1.CODICE_ALLACCIAMENTO=ut.CODICE_ALLACCIAMENTO
 AND vc1.progressivo_utenza = ut.progressivo_utenza
 and contatori_movimenti.matricola_contatore=ut.matricola_contatore_2
  and contatori_movimenti.codice_modello_contatore=ut.codice_modello_contatore_2
  and contatori_movimenti.CODICE_SERVIZIO ='E'
 and contatori_movimenti.CODICE_GESTIONE ='UNRG'
   and ut.CODICE_SERVIZIO ='E'
 and ut.CODICE_GESTIONE ='UNRG'
--AND RFACO_ID =2
--AND VC.GF_ID IN ('10')
--and FLAG_FATTURAZIONE_INTEGRALE='N'
 -------------------------------------------and contatori_movimenti.lettura <> 0

  AND CONTATORI_MOVIMENTI.MATRICOLA_CONTATORE=LS.MATRICOLA_CONTATORE(+)
  AND CONTATORI_MOVIMENTI.CODICE_MODELLO_CONTATORE=LS.CODICE_MODELLO_CONTATORE(+)
  AND CONTATORI_MOVIMENTI.PROGRESSIVO_MOVIMENTO =LS.PROGRESSIVO_MOVIMENTO(+)
  AND LS.CODICE_SERVIZIO(+) ='E'  
    and  contatori_movimenti.data_movimento >vc1.data_let

--and (select distinct(max(FLAG_FATTURAZIONE_INTEGRALE)) from db5.contatori_movimenti@pgu3 cm1 where cm1.matricola_contatore=CONTATORI_MOVIMENTI.matricola_contatore
                                                                                                                                                             --                   and      cm1.codice_modello_contatore=CONTATORI_MOVIMENTI.codice_modello_contatore
                                                                                                                                                             --                   and      cm1.data_movimento=CONTATORI_MOVIMENTI.data_movimento
                                                                                                                                                             --                   and       cm1.CODICE_SERVIZIO='E'
                                                                                                                                                             --                    AND      cm1.CODICE_GESTIONE ='UNRG') ='N' 
  union all
  select 
FLAG_FATTURAZIONE_INTEGRALE,
ATT_IDEXT as IMPLET_PODPDR,
 nulL IMPLET_ATTID,
CONTATORI_MOVIMENTI.MATRICOLA_contatore  IMPLET_MATSM, 
       RF.FUCO_ID IMPLET_FUCOID  ,
       RF.RFACO_ID     IMPLET_RFACOID,
       'FU' IMPLET_facoID,

   null  IMPLET_VALLETPRE, 

INDICE_MASSIMA_1 IMPLET_VALLET,
null   IMPLET_VALCON, 
  contatori_movimenti.DATA_MOVIMENTO   IMPLET_DTFINE, 
 0  IMPLET_FLTIPO, 
 null  IMPLET_COS, 
nulL   IMPLET_POTIMP, 
null   IMPLET_POTDIS, 
null   IMPLET_TENALI,
1           IMPlet_prov


 
       
from  
     sic4u_ambuet.asm_letture_x_sic_1@UESICPROD  vc1,db5.contatori_movimenti@pgu3, db5.contatori_movimenti_LS@pgu3 LS, 
     sic4u_ambuet.v_cuffrf@UESICPROD  rf,
   --sic4u_ambuet.V_FUCOFACO@UESICPROD FF,
   db5.utenze@pgu3 ut
     

 where 

 rf.STA_IDSYS <> 1 and rf.STA_IDSYS <> 3


--and rg.GF_ID='70'
 

AND RF.CUF_ID=vc1.CUF_ID
--AND RF.FUCO_ID=FF.FUCO_ID
--AND RF.RFACO_ID=FF.RFACO_ID
AND RF.RFACO_ID=2
AND RF.FUCO_ID IN ('POT')
--and  FF.FACO_ID ='FU'


AND RF.AZ_ID='02'
--AND FF.AZ_ID='02'
 AND vc1.CODICE_ALLACCIAMENTO=ut.CODICE_ALLACCIAMENTO
 AND vc1.progressivo_utenza = ut.progressivo_utenza
 and contatori_movimenti.matricola_contatore=ut.matricola_contatore_3
  and contatori_movimenti.codice_modello_contatore=ut.codice_modello_contatore_3
  and contatori_movimenti.CODICE_SERVIZIO ='E'
 and contatori_movimenti.CODICE_GESTIONE ='UNRG'
   and ut.CODICE_SERVIZIO ='E'
 and ut.CODICE_GESTIONE ='UNRG'
--AND RFACO_ID =2
--AND VC.GF_ID IN ('10')
--and FLAG_FATTURAZIONE_INTEGRALE='N'
-------------------------------------------------------------------- and contatori_movimenti.lettura <> 0

  AND CONTATORI_MOVIMENTI.MATRICOLA_CONTATORE=LS.MATRICOLA_CONTATORE(+)
  AND CONTATORI_MOVIMENTI.CODICE_MODELLO_CONTATORE=LS.CODICE_MODELLO_CONTATORE(+)
  AND CONTATORI_MOVIMENTI.PROGRESSIVO_MOVIMENTO =LS.PROGRESSIVO_MOVIMENTO(+)
  AND LS.CODICE_SERVIZIO(+) ='E'  
    and  contatori_movimenti.data_movimento >vc1.data_let

--and (select distinct(max(FLAG_FATTURAZIONE_INTEGRALE)) from db5.contatori_movimenti@pgu3 cm1 where cm1.matricola_contatore=CONTATORI_MOVIMENTI.matricola_contatore
                                                                                                                                                             --                   and      cm1.codice_modello_contatore=CONTATORI_MOVIMENTI.codice_modello_contatore
                                                                                                                                                             --                   and      cm1.data_movimento=CONTATORI_MOVIMENTI.data_movimento
                                                                                                                                                             --                   and       cm1.CODICE_SERVIZIO='E'
                                                                                                                                                             --                    AND      cm1.CODICE_GESTIONE ='UNRG') ='N' 
  
    ) z,
   
        (select nvl(vsp.vcsm_val,0) valp ,st.smis_mat
from sic4u_ambuet.v_valcxstrmis@uesicprod vsp, 
sic4u_ambuet.v_strmis@uesicprod st
where 
    st.az_id=st.az_id
and     st.sta_idsys=2

and   st.ver_dtfine= to_date('31129999','ddmmyyyy')

and  vsp.smis_id(+)=st.smis_id
and      vsp.csm_id(+) = 3
and    vsp.sta_idsys(+)=2
and   vsp.ver_dtfine(+)= to_date('31129999','ddmmyyyy')
) k
 where FLAG_FATTURAZIONE_INTEGRALE <>'x'
and trim(k.smis_mat)=trim(z.IMPLET_MATSM)




